package com.poly.system.pojo.dto;

import com.poly.common.core.validate.Add;
import com.poly.common.core.validate.Update;
import com.poly.common.core.web.domain.BaseDTO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

/**
 * 客户端版本对象 sys_client_version
 * 
 * @author poly
 * @date 2023-09-26
 */
@ApiModel(value = "SysClientVersionDTO", description = "客户端版本")
@Data
public class SysClientVersionDTO extends BaseDTO
{
    private static final long serialVersionUID = 1L;

    /**
     * 编号
     */
    @ApiModelProperty("编号")
    private Long id;

    /**
     * 系统类型(ANDROID,IOS)
     */
    @ApiModelProperty("系统类型(ANDROID,IOS)")
    @NotBlank(message="系统类型(ANDROID,IOS)不能为空", groups = {Add.class , Update.class})
    @Size(message = "系统类型(ANDROID,IOS)长度必须小于32个字符",max = 32,groups = {Add.class,Update.class})
    //@Pattern(message = "系统类型(ANDROID,IOS)格式不正确",regexp = “<正则表达式>”,groups = {Add.class,Update.class})
    private String clientType;

    /**
     * 客户端名称
     */
    @ApiModelProperty("客户端名称")
    @NotBlank(message="客户端名称不能为空", groups = {Add.class , Update.class})
    @Size(message = "客户端名称长度必须小于255个字符",max = 255,groups = {Add.class,Update.class})
    //@Pattern(message = "客户端名称格式不正确",regexp = “<正则表达式>”,groups = {Add.class,Update.class})
    private String clientName;

    /**
     * 版本号
     */
    @ApiModelProperty("版本号")
    @NotBlank(message="版本号不能为空", groups = {Add.class , Update.class})
    @Size(message = "版本号长度必须小于32个字符",max = 32,groups = {Add.class,Update.class})
    //@Pattern(message = "版本号格式不正确",regexp = “<正则表达式>”,groups = {Add.class,Update.class})
    private String version;

    /**
     * 数字版本号
     */
    @ApiModelProperty("数字版本号")
    @NotNull(message="数字版本号不能为空", groups = {  })
    private Integer versionNum;

    /**
     * 客户端标识
     */
    @ApiModelProperty("客户端标识")
    @NotBlank(message="客户端标识不能为空", groups = {Add.class , Update.class})
    @Size(message = "客户端标识长度必须小于32个字符",max = 32,groups = {Add.class,Update.class})
    //@Pattern(message = "客户端标识格式不正确",regexp = “<正则表达式>”,groups = {Add.class,Update.class})
    private String flag;

    /**
     * 客户端地址
     */
    @ApiModelProperty("客户端地址")
    @NotBlank(message="客户端地址不能为空", groups = {Add.class , Update.class})
    @Size(message = "客户端地址长度必须小于255个字符",max = 255,groups = {Add.class,Update.class})
    //@Pattern(message = "客户端地址格式不正确",regexp = “<正则表达式>”,groups = {Add.class,Update.class})
    private String url;

    /**
     * 大小（KB）
     */
    @ApiModelProperty("大小（KB）")
    private Integer size;

    /**
     * 版本后缀
     */
    @ApiModelProperty("版本后缀")
    @NotBlank(message="版本后缀不能为空", groups = {  })
    @Size(message = "版本后缀长度必须小于255个字符",max = 255,groups = {Add.class,Update.class})
    //@Pattern(message = "版本后缀格式不正确",regexp = “<正则表达式>”,groups = {Add.class,Update.class})
    private String suffix;

    /**
     * 是否强制更新
     */
    @ApiModelProperty("是否强制更新")
    @NotNull(message="是否强制更新不能为空", groups = {Add.class , Update.class})
    private Integer coerce;

    /**
     * 状态
     */
    @ApiModelProperty("状态")
    @NotNull(message="状态不能为空", groups = {Add.class , Update.class})
    private Integer status;

    /**
     * 更新日志
     */
    @ApiModelProperty("更新日志")
    @Size(message = "更新日志长度必须小于500个字符",max = 500,groups = {Add.class,Update.class})
    //@Pattern(message = "更新日志格式不正确",regexp = “<正则表达式>”,groups = {Add.class,Update.class})
    private String remarks;



}
